/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ufc.quixada.adrs.dao;

import br.ufc.quixada.adrs.dao.config.PostGresMapConfig;
import br.ufc.quixada.adrs.model.FaixaEtaria;
import java.sql.SQLException;
import java.util.List;

/**
 *
 * @author fernando
 */
public class FaixaEtariaDAO {

    public void insert(FaixaEtaria faixaEtaria) throws SQLException {
        faixaEtaria.setId(proxId());
        PostGresMapConfig.getSqlMapClient().insert("addFaixaEtaria", faixaEtaria);
    }

    public void update(FaixaEtaria faixaEtaria) throws SQLException {
        PostGresMapConfig.getSqlMapClient().update("updateFaixaEtaria", faixaEtaria);
    }

    public void delete(Long id) throws SQLException {
        PostGresMapConfig.getSqlMapClient().delete("deleteFaixaEtaria", id);
    }

    public FaixaEtaria getByRebanhoId(Long id) throws SQLException {
        return (FaixaEtaria) PostGresMapConfig.getSqlMapClient().queryForObject("getFaixaEtariaByRebanhoId", id);
    }

    public FaixaEtaria getById(Long id) throws SQLException {
        return (FaixaEtaria) PostGresMapConfig.getSqlMapClient().queryForObject("getFaixaEtariaById", id);
    }

    private Long proxId() throws SQLException {
        Long id = (Long) PostGresMapConfig.getSqlMapClient().queryForObject("getMaxFaixaEtariaId");
        if (id == null) {
            id = 0L;
        }

        return id + 1;
    }

    public List<FaixaEtaria> getAll() throws SQLException {
        return (List<FaixaEtaria>) PostGresMapConfig.getSqlMapClient().queryForList("getAllFaixaEtaria");
    }

    public FaixaEtaria getByLimiteInferior(int i) throws SQLException {
        return (FaixaEtaria) PostGresMapConfig.getSqlMapClient().queryForObject("getFaixaEtariaByLimiteInferior", i);
    }
}
